//给定两个字符串,A和B。
//A的旋转操作就是将A最左边的字符移动到最右边。
//例如，若 A='abcde'，在移动一次之后结果就是'bcdea'
//如果在若干次调整操作之后，A能变成B，那么返回True。
//如果不能匹配成功，则返回false
import java.util.Scanner;
public class A37{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入第一个字符串:");
		String strA = sc.next();
		System.out.println("请输入第二个字符串:");
		String strB = sc.next();
		//1
		boolean flag = compare(strA,strB);
		System.out.println(flag);
	}
	//如果要修改字符串的内容
	//可以有两个办法:
	//1.用substring进行截取,把左边的字符截取出来拼接到右侧
	//2.可以把字符串先变成一个字符数组。然后调整字符数组里面数据，最后再把字符数组变成字符串
	public static String rotate(String str){
		char first = str.charAt(0);
		String end = str.substring(1);
		return end+first;
	}
	//上面修改字符串的第二种方法
	//	public static String rotate1(String str){
	//		char[] arr = str.toCharArray();
	//		char first = arr[0];
	//		for(int i = 1;i < arr.length();i++){
	//			arr[i-1] = arr[i];
	//		}
	//		arr[arr.length - 1] = first;
	//		String result = new String(arr);
	//		return result;
	//	}
	public static boolean compare(String strA,String strB){
		int count = 1;
		while(count <= strA.length()){
			strA = rotate(strA);//易错
			if(strA.equals(strB)){
				return true;
			}
			count++;
		}
		return false;
	}
	//上面这个循环的第二种写法
	//	public static boolean compare(String strA,String strB){
	//		for(int i = 0;i < strA.length();i++){
	//			strA = rotate(strA);
	//			if(strA.equals(strB)){
	//				return true;
	//			}
	//		}
	//		return false;
	//	}
}
